using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("SpecialEventVisualMgr")]
	public class SpecialEventVisualMgr : MonoBehaviour
	{
		public List<SpecialEventVisualDef> m_EventDefs => method_3<Class271<SpecialEventVisualDef>>("m_EventDefs")?.method_25();

		public SpecialEventVisualMgr(IntPtr address, string className)
			: base(address, className)
		{
		}

		public SpecialEventVisualMgr(IntPtr address)
			: this(address, "SpecialEventVisualMgr")
		{
		}

		public static SpecialEventVisualMgr Get()
		{
			return MonoClass.smethod_15<SpecialEventVisualMgr>(TritonHs.MainAssemblyPath, "", "SpecialEventVisualMgr", "Get", Array.Empty<object>());
		}

		public static SpecialEventType GetActiveEventType()
		{
			return MonoClass.smethod_14<SpecialEventType>(TritonHs.MainAssemblyPath, "", "SpecialEventVisualMgr", "GetActiveEventType", Array.Empty<object>());
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public bool LoadEvent(SpecialEventType eventType)
		{
			return method_11<bool>("LoadEvent", new object[1] { eventType });
		}

		public bool UnloadEvent(SpecialEventType eventType)
		{
			return method_11<bool>("UnloadEvent", new object[1] { eventType });
		}

		public void OnEventFinished(Spell spell, object userData)
		{
			method_8("OnEventFinished", spell, userData);
		}
	}
}
